class Punto {
  int puntuacionA;
  int puntuacionB;

  ArrayList<Trayectoria> trayectorias;
  ArrayList<Golpe> golpes;

  Punto() {
    golpes = new ArrayList<Golpe>();
    trayectorias = new ArrayList<Trayectoria>();
  }

  void addGolpeAPunto(Golpe g) {
    this.golpes.add(g);
    println ("added golpe:" + g);
  }
  
  void addTrayectoria(Trayectoria t){
    trayectorias.add(t);
  }

  void cierraPunto() {
    // construye las trayectorias;
   trayectorias.clear();
    
    int index = 1;
    do{
      trayectorias.add (new Trayectoria (golpes.get(index-1), golpes.get(index)));
      index++;
    }while( index < golpes.size());
  }

  void pintaGolpesPunto(Boolean showFrame) {
    for (int i=0; i<golpes.size();i++) {
      Golpe g = golpes.get(i);
      g.pinta();
      if (showFrame)
        text (g.frame,g.pos.x + 10,g.pos.z);
    }
    if (golpes.size()>1) {
      for (int i=1; i<golpes.size();i++) {
        Golpe g0 = golpes.get(i-1);
        Golpe g  = golpes.get(i);
        line(g0.pos.x,g0.pos.z,g.pos.x,g.pos.z);
      }
    }
  }
  
  String toString (){
    String str = "PUNTO:\n";
    for (int i =0; i< golpes.size(); i++){
      str += (golpes.get(i));
      str += "\n";
    }
    
    for (int i =0; i< trayectorias.size(); i++){
      str += (trayectorias.get(i));
      str += "\n";
    }
    return str;
  }
  void borraTrayectorias(){
    trayectorias.clear();
  }
}

